package com.hsjk.szwj.module.pay.dal.dataobject.config;

import com.hsjk.szwj.module.pay.dal.dataobject.system.IsvInfoDO;
import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/**
 * @author chenjiawei
 * @desc Isv支付参数信息 放置到内存， 避免多次查询操作
 * @Date 2023/08/21 09:40
 **/
@Data
public class IsvConfigContext {
    /**
     * isv信息缓存
     */
    private Long isvId;
    private IsvInfoDO isvInfo;

    /**
     * 商户支付配置信息缓存
     */
    private Map<Long, IsvParams> isvParamsMap = new HashMap<>();

    /**
     * 缓存 wxServiceWrapper 对象
     **/
    private WxServiceWrapper wxServiceWrapper;


    /**
     * 获取isv配置信息
     **/
    public IsvParams getIsvParamsByIfId(Long ifId) {
        return isvParamsMap.get(ifId);
    }

    /**
     * 获取isv配置信息
     **/
    public <T> T getIsvParamsByIfId(Long ifId, Class<? extends IsvParams> cls) {
        return (T) isvParamsMap.get(ifId);
    }
}
